霍夫变换(直线检测、圆检测) | 您所在的位置:网站首页 › opencv 圆检测 › 霍夫变换(直线检测、圆检测) |
可以看出如果笛卡尔坐标系的点共线,这些点在霍夫空间对应的直线交于一点:这也是必然,共线只有一种取值可能。 如果不止一条直线呢?再看看多个点的情况(有两条直线):
在opencv中步骤解读: 具体步骤: 1. 彩色图像->灰度图 2. 去噪(高斯核) 3. 边缘提取(梯度算子、拉普拉斯算子、canny、sobel) 4. 二值化(判断此处是否为边缘点,就看灰度值==255) 5. 映射到霍夫空间(准备两个容器,一个用来展示hough-space概况,一个数组hough-space用来储存voting的值,因为投票过程往往有某个极大值超过阈值,多达几千,不能直接用灰度图来记录投票信息) 6. 取局部极大值,设定阈值,过滤干扰直线 7. 绘制直线、标定角点 函数HoughLines的实现代码 #include "opencv2/core/core.hpp" #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/opencv.hpp" #include using namespace cv; using namespace std; using std::cout; int main() { Mat g_srcImage, midImage, dstImage; namedWindow("[原始图]"); g_srcImage = imread("E:\\VS2015Opencv\\vs2015\\project\\picture\\01.jpg"); if (!g_srcImage.data) { cout |
CopyRight 2018-2019 实验室设备网 版权所有 |